#ifndef FINALLEFTSECONDSTEST_H
#define FINALLEFTSECONDSTEST_H

#include <QObject>
#include <QTest>
#include <QDate>
#include <QTime>
#include <QMap>
#include <QVector>
#include <QFile>
#include <QTextStream>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDir>
#include <QDebug>

#include "../../compare/cholidayset.h"
#include "../../compare/cworktime.h"

class FinalLeftSecondsTest : public QObject
{
    Q_OBJECT

public:
    FinalLeftSecondsTest() = default;
    ~FinalLeftSecondsTest() = default;

private slots:
    void initTestCase(); // 测试用例初始化
    void cleanupTestCase(); // 测试用例清理
    void testFinalLeftSeconds(); // 主要测试函数

private:
    // 路径获取方法
    QString getTestDataBasePath();
    QString getTestResultBasePath();

    // 解析JSON文件
    QJsonObject readJsonObject(const QString& filePath);

    // 创建目录和文件（递归）
    void createFileRecursion(const QString& fileName);

    // 解析时间字符串
    QTime parseTime(const QString& timeStr);

    // 写入结果到文件
    void writeResultToFile(const QString& fileName, int result);

    // 测试数据路径
    QString testDataFileBase;
    QString testResultFileBase;
};

#endif // FINALLEFTSECONDSTEST_H
